/**
 * Software License, Version 1.0
 * 
 * Copyright 2003 The Trustees of Indiana University.  All rights reserved.
 * 
 *
 *Redistribution and use in source and binary forms, with or without 
 *modification, are permitted provided that the following conditions are met:
 *
 *1) All redistributions of source code must retain the above copyright notice,
 * the list of authors in the original source code, this list of conditions and
 * the disclaimer listed in this license;
 *2) All redistributions in binary form must reproduce the above copyright 
 * notice, this list of conditions and the disclaimer listed in this license in
 * the documentation and/or other materials provided with the distribution;
 *3) Any documentation included with all redistributions must include the 
 * following acknowledgement:
 *
 *"This product includes software developed by the Community Grids Lab. For 
 * further information contact the Community Grids Lab at 
 * http://communitygrids.iu.edu/."
 *
 * Alternatively, this acknowledgement may appear in the software itself, and 
 * wherever such third-party acknowledgments normally appear.
 * 
 *4) The name Indiana University or Community Grids Lab or NaradaBrokering, 
 * shall not be used to endorse or promote products derived from this software 
 * without prior written permission from Indiana University.  For written 
 * permission, please contact the Advanced Research and Technology Institute 
 * ("ARTI") at 351 West 10th Street, Indianapolis, Indiana 46202.
 *5) Products derived from this software may not be called NaradaBrokering, 
 * nor may Indiana University or Community Grids Lab or NaradaBrokering appear
 * in their name, without prior written permission of ARTI.
 * 
 *
 * Indiana University provides no reassurances that the source code provided 
 * does not infringe the patent or any other intellectual property rights of 
 * any other entity.  Indiana University disclaims any liability to any 
 * recipient for claims brought by any other entity based on infringement of 
 * intellectual property rights or otherwise.  
 *
 *LICENSEE UNDERSTANDS THAT SOFTWARE IS PROVIDED "AS IS" FOR WHICH NO 
 *WARRANTIES AS TO CAPABILITIES OR ACCURACY ARE MADE. INDIANA UNIVERSITY GIVES
 *NO WARRANTIES AND MAKES NO REPRESENTATION THAT SOFTWARE IS FREE OF 
 *INFRINGEMENT OF THIRD PARTY PATENT, COPYRIGHT, OR OTHER PROPRIETARY RIGHTS. 
 *INDIANA UNIVERSITY MAKES NO WARRANTIES THAT SOFTWARE IS FREE FROM "BUGS", 
 *"VIRUSES", "TROJAN HORSES", "TRAP DOORS", "WORMS", OR OTHER HARMFUL CODE.  
 *LICENSEE ASSUMES THE ENTIRE RISK AS TO THE PERFORMANCE OF SOFTWARE AND/OR 
 *ASSOCIATED MATERIALS, AND TO THE PERFORMANCE AND VALIDITY OF INFORMATION 
 *GENERATED USING SOFTWARE.
 */
package cgl.narada.performance.gui;

import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;

import javax.swing.JFrame;

/**
 * <p>Title: </p>
 * <p>Description: </p>
 * <p>Company: </p>
 * @author Gurhan Gunduz
 * @version 1.0
 */

public class Chart2 extends JFrame {
  private long [] latency;
  private boolean color=true;
  public Chart2() {
    super("CHART OF PERFORMANCE VALUES");
    //Graphics g;
    setSize(600,400);
    this.setBackground(Color.white);
    this.setLocation(300,300);
    //this.show();

  }

  public void paint(Graphics g){
    Graphics2D g2=(Graphics2D) g;
    g2.clearRect(40, 40, 550, 370);
    g2.setBackground(Color.white);
    //g2.setColor(Color.white);
    g2.drawLine(50, 50, 50,350);
    g2.drawLine(50,350,550,350);
    for (int i = 70; i < 550; i+=20) {
      g2.drawLine(i, 348, i, 352);
      if (i<350) g2.drawLine(48,i,52,i);
    }
    g2.drawLine(546,347, 550, 350);
    g2.drawLine(546,353, 550, 350);
    g2.drawLine(47,53, 50, 50);
    g2.drawLine(53,53, 50, 50);

    if (color){
      g2.setColor(Color.red);
      color=false;
    }else {
      g2.setColor(Color.blue);
      color=true;
    }
    if (latency!=null){
    for (int i = 0; i < latency.length-1; i++) {
      g2.drawLine((70+i*20), (int)latency[i]+100, (70+(i+1)*20), (int)latency[i+1]+100);

    }
    }
//    g2.drawLine(70, (int)latency[0], 90, 200);
//    g2.drawLine(90, 200, 110, 220);
//    g2.drawLine(110, 220, 130, 180);
//    g2.drawLine(130, 180, 150, 200);
//    g2.drawLine(150, 200, 170, 200);


  }

  public void setLatencies(long [] values){
    latency = new long[values.length];
    for (int i = 0; i < values.length; i++) {
      latency[i]=values[i];
    }
//    for (int i = 0; i < latency.length; i++) {
//      System.out.print(latency[i]);
//    }
    this.repaint();

  }

  public static void main(String args[]){
    Chart c=new Chart("s");

    long[] lat = {
        150, 130, 120, 200, 110, 300, 200, 222, 234};
    c.setLatencies(lat);
    c.show();
    long[] lat1 = {
        150, 130, 120, 200, 110, 300, 200, 222, 234, 150,120};
    c.setLatencies(lat1);
    c.show();
    long[] lat2 = {
        150, 130, 120, 200, 110, 300, 200, 222, 234,150,120,170,200};
    c.setLatencies(lat2);
    c.show();
//    long[] lat3 = {
//        150, 130, 120, 200, 110, 300, 200, 222, 234};
//    c.setLatencies(lat3);
//    c.show();



  }



}
